iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 10
1
自我挑戰組

TensorFlow 2 30天自我養成計畫系列 第 10

[Day 10]建立模型與開始訓練!

  • 分享至 

  • xImage
  •  
今天我們將建立多層感知器(Multilayer perceptron)模型並開始訓練,今天大部分都會講解程式碼的部分,也會碰到一些數學公式,慢慢熟悉,我們一起努力!

建立模型
我們將建立多層感知器(Multilayer perceptron)模型,之前有提到的輸入層、輸出層、隱藏層概念,今天也要正式開跑啦!輸入層(X)共有784神經元,隱藏層(h)共有256,輸出層共有10個神經元。
筆者將由以下圖片進行說明:

加入輸入層與隱藏層需鍵入以下指令

    (Dense(units=256,
           input_dim=784,
           kernel_initializer='normal',
           activation='relu'))

加入輸出層需鍵入以下指令

    (Dense(units=10,
            kernel_initializer='normal',
            activation='softmax'))
  1. 匯入所需模組,如下圖所示:

  2. 建立Sequential模型
    建立一個線性堆疊模組,後續只需使用model.add()方法,將各神經網路層加入模型即可,輸入以下指令
    model = Sequential()

  3. 建立輸入層與隱藏層
    以下所示之程式碼,可將輸入層與隱藏層加入模型,使用model.add方法並加入Dense神經網路層即可。
    其中Dense神經網路層特色是將所有上一層與下一層的神經元完全連結。

注意!建立Dense神經網路層,需要輸入以下參數!

  • units=256(定義隱藏層神經元個數256)
  • input_dim=784(設定輸入層神經元個數784)
  • kernel_initializer='normal'(使用常態分布的亂數,初始化權重偏差)
  • activation(定義激活函數為relu)
  1. 建立輸出層
    輸入以下指令建立輸出層,使用與上述相同的方法。共有10個神經元對應到0-9時個數字,並使用softmax激活函數進行轉換。

注意!建立輸出層,需要輸入以下參數!

  • units=10(定義輸出層神經元個數10)
  • kernel_initializer='normal'(使用常態分布的亂數,初始化weight與bias)
  • activation(定義激活函數為softmax)
  1. 查看模型的摘要
    鍵入以下指令,即可查看模型的摘要
print(model.summary())

注意!總共會看到有兩個層,隱藏層共256個神經元,因為輸入層與隱藏層一起建立,並不會顯示輸入層。輸出層則為10個神經元。

  1. 查看模型的摘要Param
    這些是需要透過反向演算法,更新權重與偏差
    公式如下所示:
  • 建立輸入層與隱藏層公式: h1=relu(X*W1+b1)
  • 建立輸出層與隱藏層公式: y=softmax(h1*W2+b2)
  • 每一層Param計算方式: Param=(上一層神經元數量)*(本層的神經元數量)+(本層的神經元數量)
  • 全部必須訓練的參數,是每一層的加總,計算是這樣: (隱藏層的Param)+(輸出層的Param)

進行訓練
經過一堆繁雜的過程後/images/emoticon/emoticon13.gif,要進行到訓練的部分啦!

  1. 定義訓練方式
    訓練模型前,我們必須要使用compile方法,對訓練模型進行設定,如下所示:

  2. 開始訓練
    結束後我們就要開始進行訓練,今天會先提供執行訓練的程式碼,明天再仔細講解,如下所示:

train_history =model.fit(X=X_Train_normalize,
                         Y=Y_Train_OneHot,validation_split=0.2,
                         epochs=10, batch_size=200,verbose=2)

今天先進行簡單的訓練,明天會仔細講解再進行進階,對筆者來說今天這部分實在是有些困難,但學習程式的確是會常常碰壁,只要咬牙撐過還是可以過去的~共勉之!/images/emoticon/emoticon08.gif

Reference: 林大貴(2019):TensorFlow+Keras 深度學習人工智慧實務應用。新北市:博碩文化


上一篇
[Day 9]介紹Keras與建立Multilayer perceptron模型
下一篇
[Day 11]繼續努力,再接再厲!
系列文
TensorFlow 2 30天自我養成計畫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言